<?php
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of Operacao
 *
 * @author raphael
 */
class FabricaModulo{
    protected $modulo;
    protected $metodo;

    public function __construct(){
        if((isset($_REQUEST['app'])) && (isset($_REQUEST['op']))){
            $this->executar($_REQUEST['app'], $_REQUEST['op']);
        }
    }

    /**
     *
     * @param <string> $modulo
     * @param <string> $metodo
     */
    public function executar($modulo,$metodo){
        global $configuracoes;
        $modulo = ucfirst($modulo);
        if($this->existeModulo($modulo)){
            $modulo = ucfirst($modulo);
            $app = new $modulo();
            if(in_array($metodo,get_class_methods($modulo))){
                $app->$metodo();
            }
            else{
                echo "<h1 class='Erro Fatal'>A ação {$metodo} não está disponível para a aplicação {$modulo} no momento.</h1>";
                die();
            }
        }
        else{
            echo "<h1 class='Erro Fatal'>A aplicação {$modulo} não está disponível no momento.</h1>";
            die();
        }
    }

    public function existeModulo($nomeModulo){
        global $cnxIntra;
        $consulta = new Consulta($cnxIntra,"SELECT * FROM modulo WHERE nome='{$nomeModulo}'");
        $nRegistros = $consulta->getQtdeLinhas();
        if(isset($nRegistros)){
            return true;
        }
        else{
            return false;
        }
    }
}
?>
